package com.meserovirtual.logica;


import com.meserovirtual.modelos.AreaFabricacionProducto;
import com.meserovirtual.persistencia.IAreaFabricacionProductoDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Adalberto
 */
@Stateless
public class AreaFabricacionProductoLogica implements AreaFabricacionProductoLogicaLocal {
    @EJB
    private IAreaFabricacionProductoDAO areaFabricacionProductoDAO;

    @Override
    public void registrar(AreaFabricacionProducto areaFabricacionProducto) throws Exception {
        if(areaFabricacionProducto==null){
            throw new Exception("No Existe Area de Fabricacion del Producto");
        }
        AreaFabricacionProducto objAreaFabricacionProducto = areaFabricacionProductoDAO.consultarPorCodigo(areaFabricacionProducto.getCodigo());
        if(objAreaFabricacionProducto != null){
                  throw new Exception("El Area de Fabricacion del Producto Ya Existe");
        }
        if(areaFabricacionProducto.getDescripcion()==null || areaFabricacionProducto.getDescripcion().equals("")){
            throw new Exception("La descripcion del Area de Fabricacion del Producto no Puede ser Vacio");
        }
        areaFabricacionProductoDAO.registrar(areaFabricacionProducto);
    }


    @Override
    public void modificar(AreaFabricacionProducto areaFabricacionProducto) throws Exception {
        if(areaFabricacionProducto==null){
            throw new Exception("El Area de Fabricacion del Producto no Tiene Informacion");
        }
        AreaFabricacionProducto objAreaFabricacionProducto = areaFabricacionProductoDAO.consultarPorCodigo(areaFabricacionProducto.getCodigo());
        if(objAreaFabricacionProducto == null){
            throw new Exception("El Area de Fabricacion del Producto Ya no Existe");
        }
        if(areaFabricacionProducto.getDescripcion()==null || areaFabricacionProducto.getDescripcion().equals("")){
            throw new Exception("La Descripcion del Area de Fabricacion del Producto no Puede ser Vacia");
        }
        areaFabricacionProductoDAO.modificar(areaFabricacionProducto);
    }

    @Override
    public void eliminar(AreaFabricacionProducto areaFabricacionProducto) throws Exception {
        if(areaFabricacionProducto==null){
            throw new Exception("El Area de Fabricacion del Producto no Tiene Informacion");
        }
        AreaFabricacionProducto objAreaFabricacionProducto = areaFabricacionProductoDAO.consultarPorCodigo(areaFabricacionProducto.getCodigo());
        if(objAreaFabricacionProducto==null){
            throw new Exception("El Area de Fabricacion del Producto a Eliminar no Existe");
        }
        areaFabricacionProductoDAO.eliminar(objAreaFabricacionProducto);
    }

    @Override
    public List<AreaFabricacionProducto> consultar() throws Exception {
        return areaFabricacionProductoDAO.consultar();
    }

    @Override
    public AreaFabricacionProducto consultarPorCodigo(Integer codigo) throws Exception {
        if(codigo==null || codigo==0){
            throw new Exception("El Codigo es Obligatorio");
        }
        return areaFabricacionProductoDAO.consultarPorCodigo(codigo);
    }
    
}
